package com.nenude.corejava.jdbc.dao;

import java.util.List;

import com.nenude.corejava.jdbc.bean.Users;



/**
 * 分层
 * 定义一个泛型接口，用于定义数据库的基本操作
 * @author admin
 */
public interface IBaseDao<T>{
	
	/**
	 * 新增
	 * 把一个不知是什么类型的数据添加到数据库中
	 * @param param
	 * @return
	 */

	public boolean add(T param);
	/**
	 * 修改
	 * @param param
	 * @return
	 */
	public boolean edit(T param);
	/**
	 * 删除
	 * @param id
	 * @return
	 */
	
	public boolean deleteById(int id);
	/**
	 * 根据主键查询
	 * @param id
	 * @return
	 */
	public T findById(int id);
	/**
	 * 查询所有记录，用集合来保存
	 * @return
	 */
	public List<T> findAll();
	
	/**
	 * 查询所有记录
	 * @param param
	 * @return
	 */
	public List<T> findByExample(T param);
	
	/**
	 * 分页查询
	 * @param page 页码,从1 开始，1表示第一页
	 * @param size 分页，分页大小，最小值是1，表示每页查询1条记录
	 * @return
	 */
	public List<T> findByPager(int page,int size);
	
	/**
	 * 根据指定的id数组进行批量删除
	 * @param ids
	 * @return
	 */
	
	public int deleteByIds(int [] ids);
	
	/**
	 * 批量新增
	 * @param users
	 * @return
	 */
	public int addAll(List<Users> users);
	
	/**
	 * 批量修改
	 * @param users
	 * @return
	 */
	public int editAll(List<Users> users);
	
	
	

}
